package com.wzq.solution;

import java.util.ArrayList;
import java.util.List;

class Solution43 {
    public String multiply(String num1, String num2) {
        
        if("0".equals(num1) || "0".equals(num2)){
            return "0";
        }
        
        int l2 = num2.length();
        int l1 = num1.length();
        List<Integer> rst = new ArrayList<Integer>();
        
        for(int i=l2-1;i>=0;i--){
           
            int n=0;
            int tmpRst=0;
            int start = l2-1-i;
            
            for(int j=l1-1;j>=0||n>0;j--,start++){
                
                if(j>=0){
                    tmpRst = (num1.charAt(j)-'0')*(num2.charAt(i)-'0')+n;
                }else{
                    tmpRst = n;
                }
                if(start < rst.size()){
                    tmpRst = rst.get(start)+tmpRst;
                }
            
                n = tmpRst/10;                    
                tmpRst = tmpRst%10;               

    
                if(start < rst.size()){
                    rst.set(start,tmpRst);
                }else{
                    rst.add(tmpRst);
                }
                
            }
        }
            
        StringBuilder sb = new StringBuilder();
        for(int i=rst.size()-1;i>=0;i--){
            sb.append(rst.get(i));
        }
        return sb.toString();    
    }
}